/* eslint-disable @typescript-eslint/no-explicit-any */
/**
 * @description 调度任务
 * @export
 * @interface IScheduleTask
 */
export interface IScheduleTask {
  /**
   * @description 标识
   * @type {string}
   * @memberof IScheduleTask
   */
  id: string;

  /**
   * @description  名称
   * @type {string}
   * @memberof IScheduleTask
   */
  name: string;

  /**
   * @description 开始时间
   * @type {Date}
   * @memberof IScheduleTask
   */
  start: Date;

  /**
   * @description 结束时间
   * @type {Date}
   * @memberof IScheduleTask
   */
  end: Date;

  /**
   * @description 资源标识
   * @type {string}
   * @memberof IScheduleTask
   */
  resourceId: string;

  /**
   * @description 原始数据
   * @type {Record<string, any>}
   * @memberof IScheduleTask
   */
  data: Record<string, any>;
}

/**
 * @description 调度资源
 * @export
 * @interface IScheduleResource
 */
export interface IScheduleResource {
  /**
   * @description 标识
   * @type {string}
   * @memberof IScheduleResource
   */
  id: string;

  /**
   * @description 名称
   * @type {string}
   * @memberof IScheduleResource
   */
  name: string;

  /**
   * @description  任务
   * @type {IScheduleTask[]}
   * @memberof IScheduleResource
   */
  tasks: IScheduleTask[];

  /**
   * @description 原始数据
   * @type {Record<string, any>}
   * @memberof IScheduleResource
   */
  data: Record<string, any>;
}

/**
 * @description 资源视图模型
 * @export
 * @interface IResourceViewModel
 */
export interface IResourceViewModel {
  /**
   * @description 资源标识
   * @type {string}
   * @memberof IResourceViewModel
   */
  id: string;

  /**
   * @description 元素宽度
   * @type {number}
   * @memberof IResourceViewModel
   */
  width: number;

  /**
   * @description 元素高度
   * @type {number}
   * @memberof IResourceViewModel
   */
  height: number;

  /**
   * @description 距离头部距离
   * @type {number}
   * @memberof IResourceViewModel
   */
  top: number;

  /**
   * @description 距离左侧距离
   * @type {number}
   * @memberof IResourceViewModel
   */
  left: number;

  /**
   * @description 源数据
   * @type {IScheduleResource}
   * @memberof IResourceViewModel
   */
  data: IScheduleResource;
}

/**
 * @description 任务视图模型
 * @export
 * @interface ITaskViewModel
 */
export interface ITaskViewModel {
  /**
   * @description 标识
   * @type {string}
   * @memberof ITaskViewModel
   */
  id: string;

  /**
   * @description 原始标识
   * @type {string}
   * @memberof ITaskViewModel
   */
  originalId: string;

  /**
   * @description 资源标识
   * @type {string}
   * @memberof ITaskViewModel
   */
  resourceId: string;

  /**
   * @description 宽度
   * @type {number}
   * @memberof ITaskViewModel
   */
  width: number;

  /**
   * @description 高度
   * @type {number}
   * @memberof ITaskViewModel
   */
  height: number;

  /**
   * @description 距离头部距离
   * @type {number}
   * @memberof ITaskViewModel
   */
  top: number;

  /**
   * @description 距离左侧距离
   * @type {number}
   * @memberof ITaskViewModel
   */
  left: number;

  /**
   * @description 源数据
   * @type {IScheduleTask}
   * @memberof ITaskViewModel
   */
  data: IScheduleTask;
}
